import scrapy


class QuotesSpider(scrapy.Spider):
    '''
    爬虫是通过发送请求给 start_urls 属性中定义的 url(就是 humor 分类下的 那些 url) 
    然后调用默认的回调函数 parse，并把响应的对象作为参数传给它。
    在 parse 回调函数中， 我们使用 CSS 选择器遍历quote元素，并把解析的引用名言和作者生成一个字典通过生成器返回，
    寻找并请求下一个链接且继续使用 parse 方法作为回调函数。
    '''
    name = 'quotes'
    start_urls = [
        'http://quotes.toscrape.com/tag/humor/',
    ]

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'text': quote.css('span.text::text').get(),
                'author': quote.xpath('span/small/text()').get(),
            }

        next_page = response.css('li.next a::attr("href")').get()
        if next_page is not None:
            yield response.follow(next_page, self.parse)

#当你运行 scrapy runspider quotes_spider.py 命令之后, Scrapy 会找到定义的爬虫器， 然后通过爬虫引擎运行它们。
